小說王耽美小說網

面向對象的編程與維特根斯坦 (轉)下

關燈
2.14那圖畫的存在是由於這樣一個事實:它的各元素之間以某種固

定方式相結合.

Thepictureconsistsinthefactthatitselementsare

&nbspbinedwithoneanotherinadifiniteway.

2.141那圖畫即是一個事實

Thepictureisafact.

2.15那圖畫的各元素以某種固定方式相結合,代表了事物(現實世界的)

也是如此相結合的.

那圖畫的各元素的結合方式稱為該圖畫的結構,該結構也稱為該圖

畫的表達模式.

Thattheelementsofthepicturearbinedwithone

anotherinadifiniteway,

representsthatthethingsaresbinedwithone

another.

Thisconnexionoftheelementsofthepictureiscalled

itsstructure,andthe

possibilityofthisstructureiscalledtheformof

representationofthepicture.

‘‘‘‘‘‘

2.1511這樣,那圖畫與現實就聯系起來了.那圖畫就逼近現實了.

Thusthepictureislinkedwithreality;itreaches

uptoit.

2.1512它就象是現實按比例縮小的圖形.

Itislikeascaleappliedtoreality.

........

2.16事實要想表達為圖畫,該圖畫和它之間必定要存在某種共同之處.

Inordertobeapictureafactmusthavesomthingin

&nbspmonwithwhatitpictures.

.......

2.17為了能夠代表現實---正確或錯誤的---圖畫必須與現實保持一致

的東西,是它的表達模式.

Whatthepicturemusthaveimonwithrealityinorder

tobeabletorepresent

afteritsmanner---rightlyorfalsely--isitsformof

representation.

.......

2.172那圖畫卻無法表達它自己的表達模式.它只是將其徑直顯現出

來.

Thepicture,however,cannotrepresentitsformof

representation.

Itshowsitforth.

......

2.18為了能夠代表現實---正確或錯誤的---無論何種模式的圖畫,它必須

與現實保持一致的東西,是邏輯結構,即:現實世界的模式.

Whateverypicture,ofwhateverform,musthaveimonwithrealityinorder

tobeabletorepresentitatall---rightlyorfalsely--isthelogicalform,

thatis,theformofreality.

2.181如果那表達模式是邏輯的模式,那麽那圖畫也可以稱為一幅邏輯圖.

Iftheformofrepresentationisthelogicalform,thenthepictureis

calledalogicalpicture.

2.182每一副圖也是一幅邏輯圖.(另一方面,並非每副圖都是空間圖)

Everypictureisalsoalogicalpicture.(Ontheotherhand,forexample,

noteverypivtureisspatial)

說明:主要強調此處的picture(與現實世界邏輯上同構)與通常我們所說的

picture(現實世界的空間結構描述圖)不同.

2.19邏輯圖可以描述現實世界.

Thelogicalpicturecandipicttheworld.

2.2那圖畫與它所描述的具有相同的邏輯表達模式

Thepicturehasthelogicalformofrepresentationimonwithwhatitpictures.

2.21那圖畫與現實或者一致,或者不一致;它或者正確,或者錯誤;或者為真,或者為假.

Thepictureagreeswithrealityornot;itisrightorwrong;trueorfalse.

說明:“1998年5月12號北京下雨了“和“1998年5月12號北京沒下雨“都是一幅picture,

它們的邏輯結構,或者說表達模式,完全相同,但其真值不同.

2.22那圖畫通過表達模式來描述世界,獨立於它的真假.

Thepicturerepresentswhatitrepresents,indepentlyofitstruthorfalsehood,

throughtheformofrepresentation.

2.221那圖畫表達的是它的實際意思.

Whatthepicturerepresentsisitssenses.

2.222它的實際意思與現實相符或者不相符,從而它為真或者為假.

Intheagreementordisagreementofitssensewithreality,

itstruthorfalsityconsists.

2.223要想知道圖畫是真還是假,必須將其與現實世界進行比較.

Inordertodiscoverwhetherthepictureistrueorfalsewemuspare

itwithreality.

......

*************************************************************************************

小結2:2主要說明---事實(facts)由原子事實(atomicfacts)所組成;

原子事實(atomicfacts)由更基本的對象(objects)所組成;

我們的關於外部世界的主觀描述圖畫,與它所描述的外部世界具有

相同的邏輯結構;

註:(這即是相當於軟件開發中的“建模“)

*************************************************************************************

第三節

3事實的邏輯圖畫就是思想.

Thelogicalpictureofthefactsisthethought.

3.01所有真的思想的總和就構成了整個現實世界一幅圖畫.

Thetotalityoftruethoughtsisapictureoftheworld.

3.02....所有能被想象的也是可能的.

......Whatisthinkableisalsopossible.

3.03我們不能想象出不合邏輯的東西,因為那樣一來我們將不得不進行不合邏輯的思維.

Wecannotthinkanythingunlogical,forotherwiseweshouldhaveto

thinkunlogically.

.........

*************************************************************************************

小結3:3主要說明---我們的思想也是以上述圖畫方式來反映客觀世界的

我們的思想與客觀世界是邏輯同構的

*************************************************************************************

第四節

4思想是有意義的命題

Thethoughtisthesignificantproposition.

4.01命題是現實的圖畫.命題是我們想象的現實的模型.

Thepropositionisapictureofreality.

Thepropositionisamodeloftherealityaswethinkitis.

......

4.1一個命題給出了一個原子事實的存在或是不存在.

Aporpositionpresentstheexistenceandnon-existenceofatomiacfacts.

4.11真命題的總體就是整個自然科學

Thetotalityoftruepropositionsisthetotalnaturalscience.

.....

4.112哲學的目標就是澄清思想.

哲學不是一個理論,而是一種活動.

哲學工作就是去闡明.

哲學的結果不是一些“哲學命題“,而是使命題清晰.

Theobjectofphilosophyisthelogicalclarificationofthoughts.

Philosophyisnotatheorybutanactivity.

Aphilosophyworkconsistsessentiallyofelucidations.

Theresultsofphilosophyisnotanumberof“philosophypropositions“,

buttomakepropositionsclear.

.......

4.113哲學劃定自然科學可以爭論的範圍.

Philosophylimitsthedisputablesphereofnaturalscience.

4.114它應該劃定什麽是可思考的,因而也就劃定了什麽是不可思考的.

Itshouldlimittheunthinkableandtherebytheunthinkable.

4.115它將清楚地指出什麽是可以言說的,從而也就指出了什麽是不可言說的.

Itwillmeantheunspeakablebyclearlydisplayingthespeakable.

4.116凡是可以被思考的,都可以被清楚地思考;

凡是可以被言說的,都可以被清楚地言說;

Everythingthatcanbethoughtatallcanbethoughtclearly.

Everythingthatcanbesaidcanbesaidclearly.

........

*************************************************************************************

小結4:4主要說明---詳細介紹了思想如何借助邏輯來反映世界;

指出了哲學的目標就是澄清思想,哲學不是一個理論,而是一種活動

它應該劃定什麽是可思考的,因而也就劃定了什麽是不可思考的.

*************************************************************************************

第五節

5命題是基本命題的真值函數

Propositionsaretruth-functionsofelementarypropositions.

.....

5.6我的語言的極限就是我的世界的極限

Thelimitsofmylanguagemeanthelimitsofmyworld.

5.6.1邏輯充滿整個世界:世界的極限也就是邏輯的極限所在

Logicfillstheworld:thelimitsoftheworldarealsoitslimits.

.....

我們無法思考的東西,我們就不能思考:因此我們不能說出我們無法思考的東西.

Whatwecannotthink,thatwecannotthink;wecannotthereforesay

Whatwecannotthink.

...

5.6.3我即是世界.(小宇宙)

Iamtheworld.(microcosm)

說明:吾心即是宇宙.:-)

*************************************************************************************

小結5:5主要說明---進一步闡明了作者的邏輯原子主義立場

指出人只有借助語言才能思考,主觀只有借助語言才能反映客觀世界

語言的極限就是世界的極限

*************************************************************************************

第六節

....

6.41世界的意義必定存在於世界之外.

Thesenseoftheworldmustlieoutsidetheworld.

6.42因而也就沒有什麽倫理學命題.

Hencealsotherecanbenoethicalpropositions.

6.421顯然倫理學是無法表述的.倫理學是超越現實的.(倫理學和美學是一樣的)

Itisclearthatethicscannotbeexpressed.

Ethicsistranscendental.(Ethicsandaestheticsareone.)

...

6.432世界如何存在,是與更高級的東西毫不相幹的;上帝並不在世界中顯現.

Howtheworldis,ipletelyindifferentforwhatishigher;

Goddoesnotrevealhimselfintheworld.

6.44世界如何存在,並不神秘;神秘的是它的存在本身.

Nothowtheworldis,isthemystical,butitis.

.........

6.52我們感到即便是所有的自然科學問題都被解答了,生活的意義仍然未被觸及絲毫.

當然是沒有任何問題可言了,這就是答案.

Wefeelthatevenifallpossiblescientificquestionsbeanswered,then

theproblemoflifehavestillnotbeentouchedatall.Ofcoursethere

isthennoquestionleft,andjustthisistheanswer.

6.521生活的意義問題的解決辦法就是消除該問題.

Thesolutionoftheproblemoflifeisseeninthevanishingof

thisproblem.

6.522實際上存在著不可表達的東西;這顯示了它的存在;它是神秘的.

Thereisindeedtheinexpressible.Thisshowsitself;

itisthemystical.

說明:生活的意義是什麽?這個問題在維特根斯坦看來是不可言說的,是無法用

現實世界的事實去實證的,因而是無意義的問題,應予以消除.

6.53哲學的正確方法應該是這樣的.除了能夠說的東西之外----如自然科學的命題,

即與哲學無關的問題----什麽都不說;然後當某人想說出一些形而上的東西時,

向他指出它的命題中存在著一些毫無意義的符號.這方法可能不太令人滿意---

他會感到我們不是在教他哲學---但這是唯一嚴格的正確方法.

Therightmethodofphilosophywouldbethis.Tosaynothingexcept

whatcanbesaid,i.e.thepropositionsofnaturalscience,i.e.something

thathavenothingtodowithpilosophy:andthenalways,whensomeone

elsewishedtosaysomethingmetaphysical,todemonstratetohimthat

hehasgivennomeaningtocertainsignsinhisrpopositions.

Thismethodwouldbeunsatisfyingtotheother---hewouldnothavethe

feelingthatweareteachinghimphilosophy---butitwouldbetheonly

strictlycorrectmethod.

6.54我的觀點是以這種方式表明的:最終真正理解了我的觀點的人,當他通過它們,

越過它們並高於它們的時候.會發現它們是毫無意義的,

(這樣說吧,他必須在爬過梯子之後將其扔掉)

Mypropositionsareelucidatoryinthisway:hewhounderstandsmefinally

recognisesthemassenseless,whenhehasclimbedoutthroughthem,

onthem,overthem.

(Hemustsotospeakthrowawaytheladder,afterhehasclimbeduponit)

*************************************************************************************

小結6:6主要說明---闡明了作者的哲學觀

哲學的正確方法應該是這樣的.除了能夠說的東西之外----什麽都不說;

*************************************************************************************

第七節

7對於那些不可言說的,必須保持沈默.

Whereofonecannotspeak,thereofonemustbesilent.

最後作者以一句意味深長的名言戛然而止.

<<邏輯哲學論>>一書,先是開門見山地提出了作者作為一個“邏輯原子論“者的世界觀.然後作者進而

提出了自己對哲學及哲學研究方法的見解.最後略帶神秘氣息的點睛之句結束:

對於那些不可言說的,必須保持沈默.

讓我們做一個簡單的總結吧.

在該書中,作者提出了如下的觀點:

----世界可以分解為事實(Theworlddividesintofacts.)

----事實是由原子事實(atomicfacts)組成的.

----一個原子事實是多個對象(objects)的組合.

----對象是簡單的(基本的)TheObjectissimple.

----對象形成了世界的基礎.

即:世界---事實----原子事實----對象,這就是我想指出的<<邏輯哲學論>>中的OO.

當然,<<邏輯哲學論>>中除了這個OO的思想,還包含了更多內容.

5.OO之後是什麽?

通過上節的討論我們了解了維特根斯坦在<<邏輯哲學論>>一書中提出的OO的思想。

即存在如下的認識鏈:世界---事實----原子事實----對象(object).

本節我們討論OO之後是什麽這個問題。我們將從歷史的和邏輯的角度來進行推理,

看看能得出什麽樣的結論。

一、從軟件工程的發展歷史來看

1969年NATO會議之後,“軟件危機“成為人們關註的焦點。為迎接軟件危機的挑戰,

人們進行了不懈的努力。這些努力大致上是沿著兩個方向同時進行的。一是從管理的

角度,希望實現軟件開發過程的工程化。這方面最為著名的成果就是提出了大家都很

熟悉的“瀑布式”生命周期模型。

它是在60年代末“軟件危機“後出現的第一個生命周期模型。如下所示。

分析-----設計-----編碼-----測試------維護

後來,又有人針對該模型的不足,提出了快速原型法、螺旋模型、噴泉模型等對“

瀑布式”生命周期模型進行補充。現在,它們在軟件開發的實踐中被廣泛采用。

這方面的努力,還使人們認識到了文檔的標準以及開發者之間、開發者與用戶之間的交流

方式的重要性。一些重要文檔格式的標準被確定下來,包括變量、符號的命名規則以及原

代碼的規範格式。

值得一提的是,在開發者之間、開發者與用戶之間的交流方式這方面,由於Inte的出

現提供了一種全新的交流手段,也產生了一種基於Inte的全新的開發方式,即OSS

(OpenSourceSoftware).其代表作有Linux(操作系統),Apeche(webserver),

Sendmail(Mail

server)等。OSS是一種極有前途的開發方式,借Inte發展的大潮,它勢必會對整個

軟件開發模型產生難以估量的影響。近期的IEEE軟件工程專刊將為次出一期專題特刊。

1999年1月份也將舉行關於Linux/OSS的國際研討會。各家計算機公司紛紛對此作出反應

,微軟也意識到了來自OSS的巨大威脅,在8月底提出了一份內部保密的文件,專門提出

了自己的應對策略,可謂是山雨欲來風滿樓。有興趣者請對此保持關註。

軟件工程發展的第二個方向,側重與對軟件開發過程中分析、設計的方法的研究。這

方面的第一個重要成果就是在70年代風靡一時的結構化開發方法,即PO(面向過程的開

發或結構話方法)。

PO是人們在用計算機世界來表達現實世界時,追求過程話、模塊化、封裝以及更高的抽

象的結果。人們用計算機來映射現實世界時,最低層的實現無非是靠數字電路技術產

生的高電平與低電平信號。用數學的語言來表示,就是像010101000010111

這樣的二進制串。這樣的抽象層次是極低的,遠離了自然語言,對一般人是不可理解的。

人們把這些二進制串分塊定義,提出了字節、ASCII碼這樣的更高抽象層次的概念,使之

對應於自然語言的一個個字母。在此基礎再借助某種形式語言,抽象出變量、表達式、

運算、語句等概念。在這個層面上,一般經過訓練的程序員已經可以比較不那麽痛苦地

進行軟件開發了。下一步的抽象就產生了PO。在PO中,人們關註的是如何用函數和過

程來實現對現實世界的模擬,將其映射到計算機世界之中。

OO是這種抽象層次不斷提高的過程的自然發展結果,它采用類和對象的概念,把變量以

及對變量進行操作的函數和過程封裝在一起,用這種更高一級的抽象來表達客觀世界。

通常,一個對象包含一些屬性和方法,它對應於自然語言中一個有意義的名詞,描述了

現實世界中的一個物體(物理

實體)或概念(抽象實體)。這個抽象層次如下圖所示:

計算機世界中的抽象層次

----XO???(OO之後)最高的抽象層次

----OO(對象、類)

----PO(過程、函數、變量)

----變量、運算、表達式、語句

----字節(4位、8位、16位、32位、64位)

----二進制串0101011110001最低的抽象層次

從上圖及以上的討論我們知道,軟件工程的發展歷史就是人們不斷追求更高的抽象、

封裝和模塊化的歷史。OO當然不會是歷史的終結。盡管不能精確得到OO之後是什麽,

我們至少可以推知,OO之後的XO,

必然將是比OO更高一級的抽象。它所依賴的核心概念必然高於並包容對象這一概念。

正如對象高於並包容了函數和變量一樣。

二、從維特根斯坦在<<邏輯哲學論>>一書中的思想來看

前面我們已經知道,維特根斯坦在<<邏輯哲學論>>一書中提出了如下思想:

----世界可以分解為事實(Theworlddividesintofacts.)

----事實是由原子事實(atomicfacts)組成的.

----一個原子事實是多個對象(objects)的組合.

----對象是簡單的(基本的)TheObjectissimple.

----對象形成了世界的基礎.

即:世界---事實----原子事實----對象這樣一個從整體到局部、從抽象到具體的

認識之鏈。在這個層次中,對象作為最基本的模塊,構成了整個認識大廈的基石。對象

通過相互之間的覆雜的關聯構成了整個世界。這個觀點也是面向對象理論的基石。

上一段我們通過對計算機世界的分析得出,OO之後的發展,必將產生比OO更高一級的

抽象的概念用於編程。按照維特根斯坦的思想可以很自然地得出結論:這個概念就是事

實(FACT)。即面向對象之後是面向事實,OO之後是FO(fact-oriented)。

那麽,什麽是事實(fact)?讓我們再次重溫一下維特根斯坦的觀點。

首先,世界是所有事實的總和。世界可以分解為事實。任一事實或者為真,或者不為

真。(即事實應返回一個布爾變量,或為TRUE,或為FALSE)

其次,那些為真的事實,是由原子事實(atomicfacts)組成的。

原子對象和簡單事實的關系是這樣的:一個原子事實是多個對象(object)的組合。在

原子事實中,對象以某種確定的方式相連。原子事實中對象相互連接的方式即是原子事

實的結構。

也就是說,原子事實是有結構的,這種結構被維特根斯坦成為是現實世界的模式(form

)。

這裏,維特根斯坦提出了幾個重要的概念:事實(fact)、原子事實(atomicfact)和模

式(form)。

如果我們以上的推理過程正確的話,我們將得出一個結論:面向對象(OO)之後是面向

事實(FO),在面向事實(FO)的分析、設計和編程中,我們將主要圍繞事實(fact)、原子

事實(atomicfact)和模式(form)這些基本概念來組織我們的軟件開發活動。在人們認

識世界的層次結構中,這些概念是比對象(object)和類(class)更高一級的抽象。

6.最後的極限

OO之後如果FO,那麽我們當然要問,FO之後又是什麽?再往後哪?有沒有一個最後的

極限?若有,極限何在?

這是個很困難的問題,不過還是讓我們繼續思考下去,看看能有些什麽結果,盡管

它可能會是十分愚蠢和幼稚。

我們知道,軟件的實質是人們以計算機編程語言為橋梁,將客觀感知世界映射於計

算機世界中去,以解決人們在客觀感知世界中要解決的問題。這裏牽涉三個主要的範疇



客觀感知世界--------計算機編程語言----------計算機世界

(1)、計算機世界

在計算機世界中,可以想象的是,單位面積的一塊芯片上可以集成的晶體管數目總

會有個上限,摩爾定律早晚要失效。另外,現在多數電腦采用的馮.諾依曼結構也需要被

突破。(如並行計算的研究)

(2)、計算機編程語言

現在的計算機編程語言,都是某種類型的形式語言。要解決一個問題,首先我們必

須為它構造算法。也就是說,對於沒有算法的問題,我們是束手無策的。這類問題被成

為是“不可計算的”。它們的解不能由圖靈機來產生。這是我們面臨的一個極限。

那麽一個問題有了算法,是不是就一定可以解決哪?很遺憾,答案是不。對於那些

NP(非多項式)問題,尤其是NP完備的問題,盡管存在算法,我們仍然是無法在多

項式時間內解決的。著名的“哈密頓線路問題”和“旅行推銷員問題”都屬於這類

問題。它們的共同特征是,當問題的規模(或覆雜度)線形增加時,解決該問題所

要化的時間將呈指數上升,以至於它們盡管理論上是可求解的,但實際上卻是不可

能的。因為要花費的時間可能已經超過了宇宙的壽命。這也是我們面臨的一個極限。

還需要指出,現在的計算機語言作為形式語言的一種,也必然具有形式語言自身所有

的局限性。數學的發展史上,曾經有三次危機,第三次危機是有羅素的一個“佯謬”

引發的悖論危機。為解決此危機,希爾伯特提出了宏偉的形式化規劃,企圖使數學一

勞永逸地處於無可爭辯的安全基礎之

上。可是,1931年奧地利25歲的天才數學邏輯學家歌德爾提出了一條劃時代的定理,

粉碎了希爾伯特形式化的美夢。哥德爾定理向我們展示,公理系統本身的協調性的陳

述在被編碼成適當的算術命題後,將成為一道這樣“不能決定的”不能決定的命題。

想象一個表達式既不為真,也不為假

,它的真假對一個形式系統(計算機)而言它是不可判定的。因此在這方面,哥德爾

定理是我們面臨的又一個極限。

(3)、客觀感知世界

現在讓我們假設軟件工程已經發展到了這樣一個理想的境界,有一天我們實現了自然

語言編程,是否就萬事大吉了?換句話,自然語言是否能很好地描述、表達客觀感知世

界?

維特根斯坦在<<邏輯哲學論>>裏已經指出了。

----世界的意義必定存在於世界之外;

----顯然倫理學是無法表述的.倫理學是超越現實的;

----實際上存在著不可表達的東西;這顯示了它的存在;它是神秘的.

(見<<邏輯哲學論>>第六節)

也就是說,外部世界中存在一些我們可以感知卻無法用語言來表達的東西。

他接著說:

----對於那些不可言說的,必須保持沈默(Whereofonecannotspeak,thereof

onemustbesilent).

.

這句話,成為我們最後的極限。

在討論完這三個範疇中我們將面臨的主要問題後,我們最後來討論一下人的主觀世界

對軟件及軟件開發的影響。

7.極限之外的空間

世界可以分為主觀想象世界和客觀可感知世界,或者說是內世界和外世界。其中,主觀想

象世界是計算機從未涉足的空間。這是屬於我們個人的私有空間,充斥著我們自己離奇

古怪的幻想和起伏不定的情緒。它具有極大的跳躍性和不確定性,常常以直覺、想象的

方式進行著自己的活動。它們通常是語言所不能表達的。

盡管這個內世界是如此的覆雜、混亂、難以捉摸,但它卻是我們與生俱來的一部分。

我們就是這樣的人。

就是這樣的人從事著軟件開發的工作。

這樣的人開發出來的軟件究竟在多大程度上是對客觀世界不折不扣的映射?還是這個

映射過程已經被扭曲或摻雜了?軟件開發者的這個主觀想象世界,他們的歡樂、沮喪、

奇想、恐懼、希望等等,究竟是怎樣影響著軟件開發的質量?

人們是要用計算機來覆制整個世界?還是來覆制人本身?

人們是在扮演上帝的角色嗎?

這樣的問題我實在不知該如何去解答,甚至覺得根本無從下手。

如果你還有足夠的耐心讀到這裏,請你也來想一想,希望它們不會使你頭疼。

:)

最後,我將引用我從網上偶爾發現的一篇文章中的話作為結束語:

“自以為是的立法者(人類)犯下了一個大錯,以為自己能定義整個軟件開發過程。他們

既不了解其開始也不了解其結果。學術界試了一下,然後就知難而退了。商業界則對其

毫無辦法。大型軟件開發商們斥巨資來制造代碼,明明想要扮演上帝的角色,卻還裝作

自己是人類的公仆。所有人都在盯著鏡子裏的自己。計算機卻在一旁偷偷的笑。”

“Theself-righteous,legalistshavemadeabigmistakeinthinkingthey

candefhesoftwaredevelopmentprocess.Theyunderstandneitherits

beginningsoritsconsequences.Theacademimunitytrieditbriefly

andthengaveup.Thebusinesmunitynevercrackedthecode.Thegiant

softwarehousesarepouringenormousenergyintoprocessofcreatingcode,

playingGod,andpretendingtobeservantsofmankind.Allarelookingat

themselvesinthemirror.Thputerislaughingback.”

本站無廣告,永久域名(danmei.twking.cc)